Method for encrypting and decrypting messages based on boolean matrices, and data communication system

ABSTRACT

This invention provides a method for executing an improved Boolean matrices based encryption, and a data communication system. In a data communication system, a server generates a series of encrypted data message blocks C 1 , C 2 , . . . , C n  from plain data blocks P 1 , P 2 , . . . , P n , by computing C i =K(P i +KVK i )K n+i +KVK i . A client receives the encrypted data and generates a series of plain data message blocks P 1 , P 2 , . . . , P n ; by computing P i =K −1 (C i +KVK i )K −(n+i) +KVK i .

DETAILED DESCRIPTION OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to cryptographic techniques for securing data communications, and in particular to a method for encrypting and decrypting messages based on Boolean matrices, and data communication system.

[0003] 2. Description of the Related Art

[0004] Design of efficient cryptographic techniques for conditional access based on encryption schemes is an important topic relevant for a large number of current multimedia issues including multimedia commerce and the streaming applications.

[0005] For example, in video on demand, it is desirable that only those who have paid for the service can view the video or movies, and this goal can be achieved using appropriate encryption techniques.

[0006] Recently a fast encryption technique for multimedia, FEA-M, has been proposed in X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001. It is based on an interesting approach for employment of the Boolean matrices.

[0007] Security and implementation issues of the proposed technique are discussed as well. According to the implementation consideration it is claimed that the scheme is suitable for software and hardware implementations. Security analysis has been performed based on consideration of the diffusion and confusion properties, claiming that the both are good, and it is also claimed that the security of FEA-M is based on the difficulty of solving underlying non-linear equations.

[0008] As disclosed in “C. E. Shannon, “Communication theory of secret systems”, Bell System Technical Journal, vol. 28, pp. 656-715, 1949”, and “J. L. Massey, “An introduction to contemporary cryptology”, Proceedings of the IEEE, vol. 76, pp. 534-549, May 1988”, the confusion requires that the ciphertext depends on the plaintext and key in a complicated way. Similarly, the diffusion requirement, on a cipher is that each plaintext should influence every ciphertext bit, and each key bit should influence every ciphertext bit. Moreover, it can be shown that although FEA-M hardware implementation is based on the shift registers the algorithm is resistant on known attacks on the binary shift registers based encryption schemes including the most powerful ones recently reported in the following articles.

[0009] A. Canteaut and M. Trabbia, “Improved fast correlation attacks using parity-check equations of weight 4 and 5”, Advances in Cryptology—EUROCRYPT2000, Lecture Notes in Computer Science, vol. 1807, pp. 573-588, 2000.

[0010] V. V. Chepyzhov, T. Johansson and B. Smeets, “A simple algorithm for fast correlation attacks on stream ciphers” , Fast Software Encryption 2000, Lecture Notes in Computer Science, vol. 1978, pp. 180-195, 2001.

[0011] T. Johansson and F. Jonsson, “Fast correlation attacks through reconstruction of linear polynomials”, Advances in Cryptology—CRYPTO 2000, Lecture Notes in Computer Science, vol. 1880, pp. 300-315, 2000.

[0012] M. J. Mihaljevic, M. P. C. Fossorier and H. Imai, “A low-complexity and high-performance algorithm for the fast correlation attack”, Fast Software Encryption 2000, Lecture Notes in Computer Science, vol. 1978, pp. 196-212, 2001.

[0013] M. J. Mihaljevic, M. P. C. Fossorier and H. Imai, “On decoding techniques for cryptanalysis of certain encryption algorithms”, IEICE Trans. Fundamentals, vol. E84-A, pp. 919-930, April 2001.

[0014] M. J. Mihaljevic, M. P. C. Fossorier and H. Imai, “Fast correlation attack algorithm with the list decoding and an application”, Fast Software Encryption Workshop—FSE2001, Yokohama, Japan, April 2001, Pre-proceedings, pp. 208-222 (also to appear in Lecture Notes in Computer Science).

[0015] Following the final statement of FEA-M authors, “we hope interested parties can offer their valuable comments on FEA-M”, this invention addresses the following two issues related to FEA-M: effective secret key size and sensitivity on network errors which cause packet loss.

[0016] Effective secret key size specifies real uncertainty about the secret key and it is equal to log₂ of the number of hypothesis which should be tested by an algorithm for cryptanalysis in order to recover the secret key. A good encryption scheme should have the effective secret key size equal to the nominal secret key size.

[0017] Packet loss errors in multimedia networks are a reality, and particularly the streaming applications, i.e. real-time information transmission, have to take into account certain rate of missing packets. When an encryption algorithm is used over a network with packet loss errors, it should be as much as possible insensitive on these errors. Accordingly we have addressed the FEA-M suitability for employment in the packet loss environment and the streaming applications.

SUMMARY OF THE INVENTION

[0018] It is one objective of the present invention to provide a novel enciphering algorithm based on Boolean matrices. It is another objective of the present invention to provide a method for encrypting and decrypting data message utilizing the novel enciphering algorithm based on Boolean matrices. Further, It is another objective of the present invention to provide a data communication system which transmits encrypted data utilizing the novel enciphering algorithm based on Boolean matrices.

[0019] Both, FEA-M and the developed algorithm are packet oriented techniques and based on employment of Boolean matrices but, the proposed algorithm has the following two advantages over FEA-M: (i) no one argument is known to contradict a statement that the effective secret key size is equal to the nominal one; (ii) it is robust against the network errors which cause packet loss. Recall that for FEA-M, it is shown that the effective secret key size is much smaller than its nominal one, and that it is inappropriate for use in the networks where the packets can be lost.

[0020] According to one aspect of the present invention,

[0021] a method of encrypting a data message, comprising the steps of:

[0022] (a) dividing a data message into a series of blocks P₁, P₂, . . . , P_(n), wherein block number is n;

[0023] (b) generating a series of encrypted data message blocks C₁, C₂, . . . , C_(n); by computing the following equation,

C _(i) =K(P _(i) +KVK ^(i))K ^(n+i) +KVK ^(i)

[0024] K: Session key in form of an n×n binary matrix

[0025] V: initial n×n binary matrix.

[0026] According to another aspect of the present invention, the session key K is generated from a master secret key in form of an n×n binary matrix K₀.

[0027] According to another aspect of the present invention, the method further comprising the steps of generating a value K* by computing the following equation,

K*=K ₀ K ⁻¹ K ₀

[0028] K⁻¹: inverse of K.

[0029] According to another aspect of the present invention, the method further comprising the steps of generating a value V* by computing the following equation,

V*=K ₀ VK ₀.

[0030] According to another aspect of the present invention,

[0031] a method of decrypting an encrypted data message, comprising the steps of:

[0032] (a) generating a series of plain data message blocks P₁, P₂, . . . , P_(n); by computing the following equation,

P _(i) =K ⁻¹(C _(i) +KVK ^(i))K ^(−(n+i)) +KVK ^(i).

[0033] K: Session key in form of an n×n binary matrix

[0034] V: initial n×n binary matrix

[0035] K⁻¹: inverse of K.

[0036] According to another aspect of the present invention, the session key K is generated from a master secret key in form of an n×n binary matrix K₀.

[0037] According to another aspect of the present invention, the method further comprising the steps of generating a value K⁻¹ from K* by computing the following equation,

K ⁻¹ =K ₀ ⁻¹ K*K ₀ ⁻¹.

[0038] According to another aspect of the present invention, the method further comprising the steps of generating a value V from V* by computing the following equation,

V=K ₀ ⁻¹ V*K ₀ ⁻¹.

[0039] According to another aspect of the present invention, a data communication system comprising a server device and a client device wherein:

[0040] said server device comprises a data enciphering means which executes a process of dividing a data message into a series of blocks P₁, P₂, . . . , P_(n), wherein block number is n; and a process of generating a series of encrypted data message blocks C₁, C₂, . . . , C_(n); by computing the following equation,

C _(i) =K(P _(i) +KVK ^(i))K ^(n+i) +KVK ^(i)

[0041] K: Session key in form of an n×n binary matrix

[0042] V: initial n×n binary matrix;

[0043] said client device comprises a data deciphering means which executes a process of generating a series of plain data message blocks P₁, P₂, . . . , P_(n); by computing the following equation,

P _(i) =K ⁻¹(C _(i) +KVK ^(i))K ^(−(n+i)) +KVK ^(i).

[0044] K: Session key in form of an n×n binary matrix

[0045] V: initial n−n binary matrix

[0046] K⁻¹: inverse of K.

[0047] According to another aspect of the present invention, the session key K is generated from a master secret key in form of an n×n binary matrix K₀.

[0048] According to another aspect of the present invention, the data enciphering means further executes a process of generating a value K* by computing the following equation,

K*=K ₀ K ⁻¹ K ₀

[0049] K⁻¹: inverse of K.

[0050] According to another aspect of the present invention, the data enciphering means further executes a process of generating a value V* by computing the following equation,

V*=K ₀ VK ₀.

[0051] According to another aspect of the present invention, the data deciphering means further executes a process of generating a value K⁻¹ from K* received from the server device, by computing the following equation.

K ⁻¹ =K ₀ ⁻¹ K*K ₀ ⁻¹

[0052] According to another aspect of the present invention, the data deciphering means further executes a process of generating a value V from V* received from the server device, by computing the following equation,

V=K ₀ ⁻¹ V*K ₀ ⁻¹.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0053] (1) Preliminaries

[0054] We consider Boolean matrices, i.e. matrices over the finite field GF(2)={0, 1} in which addition and multiplication are defined as follows: 0 ⊕ 0 = 0, 0 · 0 = 0 0 ⊕ 1 = 1, 0 · 1 = 0 1 ⊕ 0 = 1, 1 · 0 = 0 1 ⊕ 1 = 0, 1 · 1 = 1

[0055] and where the following distributive property holds

(a⊕b)·c=(a·c)⊕(b·c)

a·(b⊕c)−(a·b)⊕(a·c)

[0056] for any a, b, c ∈ GF (2)

[0057] On basis of the above definitions, Boolean matrix addition and Boolean matrix multiplication are defined as follows:

[0058] For any Boolean matrices

A=[a _(ij)]_(n×n) , B=[b _(ij)]_(n×n) and C=[c _(ij)]_(n×n),

A+B=[a _(ij) ]+[b _(ij) ]=[a _(ij) ⊕b _(ij)]

[0059] ${A\quad C} = {{\left\lbrack a_{ij} \right\rbrack \left\lbrack c_{ij} \right\rbrack} = \left\lbrack {\underset{1 \leq k \leq n}{\oplus}{a_{ik} \cdot c_{kj}}} \right\rbrack}$

[0060] where ${\underset{1 \leq k \leq n}{\oplus}{a_{ik} \cdot c_{kj}}} = {\left( {a_{i1} \cdot c_{1j}} \right) \oplus \left( {a_{i2} \cdot c_{2j}} \right) \oplus \ldots \oplus \left( {a_{i\quad n} \cdot c_{nj}} \right)}$

[0061] Note that usually, AC≠CA.

[0062] An n×n Boolean matrix A is invertible (or nonsingular) if there exists an n×n Boolean matrix B such that

A·B=B·A=I

[0063] where I is the identity n×n binary matrix which has all ones on the main diagonal and its all other elements are equal to zero. If A is an invertible matrix, then its inverse is unique. We denote the inverse of A by A⁻¹.

[0064] (2)FEA-M

[0065] This section gives an overview of FEA-M as it is proposed in “X, Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001” restricted only to characteristics of FEA-M relevant for our further analysis. FEA-M performs encryption and decryption according to the following.

[0066]FIG. 1 shows the FEA-M encryption algorithm. At first, the plaintext message should be divided into a series of blocks P₁, P₂, . . . , P_(r) with same length n². If the length of the last block is less than n², we need append some 0s in it so that it length is right n². The n² bits of each block are arranged as a square matrix of order n. The encryption and decryption processes involve the session key K and the initial matrix V₀ which are binary matrices of order n. Generation and distribution of these two matrices will be discussed later on, and in this moment we assume that they are known by the sender and receiver, and that they are unknown to any other third party.

[0067] Each plain-text matrix P_(i) is encrypted into cipher-text C_(i) in the following way:

C ₁ =K(P ₁ +V ₀)K+V ₀   (1)

C ₂ =K(P ₂ +C ₁)K ² +P ₁

[0068] . . .

C _(i) =K(P _(i) +C _(i−1))K ^(i) +P _(i−1)   (2)

[0069] In FIG. 1, the step s101 is the process for judging i>1 or not, and if i=1, then executes steps S102 and S103, and if i>1, then executes steps S104 and S105. The process in steps S102 and S103 corresponds the above described calculation (1), and the process in steps S104 and S105 corresponds the above described calculation (2).

[0070] Each corresponding ciphertext matrix C_(i) is decrypted into plaintext P_(i) in the following way:

P ₁ =K ⁻¹(C ₁ +V ₀)K ⁻¹ +V ₀   (3)

P ₂ =K ⁻¹(C ₂ +P ₁)K ⁻² +C ₁

[0071] . . .

P _(i) =K ⁻¹(C _(i) +P _(i−1))K ^(−i) +C _(i−1)   (4)

[0072] FEA-M assumes employment of a master secret key in form of an n×n binary matrix K₀ which has been distributed to the parties in a secure way. Initially, the sender is required to generate session key in form of a binary matrix K. A method for the generation of the matrix K and its inverse K⁻¹ is proposed in “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001” and will not be discussed here because it is not relevant for our analysis. Besides the session key matrix, the sender is required to randomly generate an initial binary matrix V₀. Each element of V₀ is randomly chosen from GF(2) so that the distribution of 0 and 1 in V₀ obeys the uniform distribution. By using the master key matrix K₀, the inverse of the session key matrix K and the initial matrix V₀ can be distributed from the sender to the receiver in the following way.

[0073] The sender side computes the following

K*=K ₀ K ⁻¹ K ₀   (5)

V*=K ₀ V ₀ K ₀   (6)

[0074] and sends (K*, V*) to the receiver.

[0075] The receiver side recovers K⁻¹ and V₀ by computing

K ⁻¹ =K ₀ ⁻¹ K*K ₀ ⁻¹,   (7)

V ₀ =K ₀ ⁻¹ V*K ₀ ⁻¹.   (8)

[0076] (3) An Upper Bound on the Effective Secret Key Size

[0077] This section yields a security evaluation of FEA-M via an analysis of the effective master secret key size. We consider FEA-M assuming that the parameter n has an arbitrary value.

[0078] Let {P^((j))}_(j=1) ^(m) denotes a set of m plain messages and {C^((j))}_(j=1) ^(m) denotes a set of the corresponding enciphered messages generated by FEA-M, where each P^((j)) and C^((j)) consist of r binary blocks P₁ ^((j)), P₂ ^((j)), . . . , P_(r) ^((j)) and C₁ ^((j)) , C₂ ^((j)) , . . . , C_(r) ^((j)), respectively. Let FEA-M operates over n×n binary matrix, and the master key K₀ is an n×n binary matrix. Finally, let K*^((j)) and V*^((j)) denote the session key matrix and the initial matrix, respectively, corresponding to the jth message, j=1, 2, . . . , 4n.

[0079] In this section we analyze the effective secret key size of FEA-M, i.e. real uncertainty of the master secret key assuming that the following assumption holds.

[0080] Assumption 1.

[0081] A collection of the ciphertext blocks C₁ ^((j)) is known which corresponds to different pairs (K*^((j)), V*^((j))) when P₁ ^((j)) is the all zero matrix and K*^((j)) is an invertible matrix, j=1, 2, . . . , 4n.

[0082] Lemma 1.

[0083] Assumption 1 implies existence of the following system of equations $\begin{matrix} {{{{K_{0}\left( {\left( K_{*}^{(j)} \right)^{- 1}{V_{*}^{(j)}\left( K_{*}^{(j)} \right)}^{- 1}} \right)}K_{0}} = {C_{1}^{(j)} + {K_{0}^{- 1}V_{*}^{(j)}K_{0}^{- 1}}}},} & (9) \end{matrix}$

[0084] for j=1, 2, . . . , 4n, where only K₀ is an unknown variable.

[0085] Proof.

[0086] For each j=1, 2, . . . , 4n, equation (3) implies the following one

V ₀ ^((j))=(K ^((j)))⁻¹(C ₁ ^((j)) +V ₀ ^((j)))(K ^((j)))⁻¹   (10)

[0087] where

(K ^((j)))⁻¹ =K ₀ ⁻¹ K* ^((j)) K ₀ ⁻¹;,   (11)

V ₀ ^((j)) =K ₀ ⁻¹ V* ^((j)) K ₀ ⁻¹;.   (12)

[0088] After some straight forward algebra, (10)-(12) imply the lemma statement.

[0089] Theorem 1.

[0090] Complexity of recovering FEA-M master secret key is proportional to n 2^(2n) providing that Assumption 1 holds.

[0091] Sketch of the Proof.

[0092] Recovering of the master secret key is equivalent to solving the system of equations given by Lemma 1 where unknown variables are elements of the master secret key matrix K₀. Underlying ideas for efficient solving this system of equations include employment of the following:

[0093] divide and conquer method,

[0094] exhaustive search over a set of hypothesis, and

[0095] solving a system of linear equations.

[0096] Note that a nonlinear system of equations over GF(2) $\begin{matrix} \begin{matrix} {{\underset{1 \leq k \leq n}{\oplus}{x_{ik} \cdot y_{kj}}} = c_{{ij},}} \\ {{i = 1},{2\quad \ldots}\quad,n} \\ {{j = 1},2,\ldots \quad,n} \end{matrix} & (13) \end{matrix}$

[0097] where {x_(ij)} and {y_(ij)} are unknown variables reduces to a linear one when the set of all x-variables or y-variables is assumed.

[0098] Accordingly,

[0099] if we assume values of elements in ith rows, i=1, 2, . . . , n, of K₀ and K₀ ⁻¹ than (9) implies that for each k=1,2, . . . , n, we can construct a system of 4n linear equations where the unknown variables are elements in kth columns of K₀ and K₀ ⁻¹ and solve it in the following manner:

[0100] 2n of these equations should be employed for recovering the considered kth columns under assumption that the hypothesis about the ith rows are correct, and

[0101] the remained 2n equations should be employed for checking correctness of the hypothesis.

[0102] So, it can be directly shown that above procedure implies that complexity of solving the system of equations (9) is proportional to n2^(2n) which yields the theorem statement. Theorem 1 directly implies the following corollary.

[0103] Corollary 1.

[0104] FEA-M has effective secret key size upper bounded to 2n+log₂n and it is n²/(2n+log₂n) times smaller than its nominal size.

[0105] (4) An Algorithm for FEA-M Cryptanalysis

[0106] This section gives an algorithm for FEA-M cryptanalysis.

[0107] An algorithm for FEA-M cryptanalysis is as follows.

[0108] Input

[0109] A collection of the ciphertext blocks C₁ ^((j)) which corresponds to different pairs (K*^((j)), V*^((j))) when P₁ ^((j)) is the all zero matrix and K*^((j)) is an invertible matrix, j=1, 2, . . . , 4n−2, assuming that the system of equations has the unique solution.

[0110] Processing

[0111] 1. Set the first row elements of K₀ and K₀ ⁻¹ to a previously unconsidered pattern from the set of all 2^(2n) possible binary patterns

[0112] 2.Employing k₀ = X = [x_(ik)]_(i = 1)^(n),_(k = 1)^(n), k₀⁻¹ = Y = [y_(ik)]_(i = 1)^(n),_(k = 1)^(n), A^((j)) = [a_(ik)^((j))]_(i = 1)^(n),_(k = 1)^(n) = (K_(*)^((j)))⁻¹V_(*)^((j))(K_(*)^((j)))⁻¹, B^((j)) = [b_(ik)^((j))]_(i = 1)^(n),   _(k = 1)^(n) = V_(*)^((j)), C^((j)) = [c_(ik)^((j))]_(i = 1)^(n),   _(k = 1)^(n) = C₁^((j)),

[0113] construct the following system of 4n−2 linear equations with 2n−2 unknown binary variables: $\begin{matrix} {{{{\underset{m = 1}{\overset{n}{\oplus}}{\alpha_{1m}^{(j)}x_{mk}}} = {c_{1k}^{(j)} \oplus \left( {\underset{m = 1}{\overset{n}{\oplus}}{\beta_{1m}^{(j)}y_{mk}}} \right)}}\quad,{j = 1},2,\ldots \quad,{{4n} - 2}}{where}} & (14) \\ {{\alpha_{1m}^{(j)} = {\underset{l = 1}{\overset{n}{\oplus}}{x_{1l}a_{l\quad m}^{(j)}}}}\quad,{\beta_{1m}^{(j)} = {\underset{l = 1}{\overset{n}{\oplus}}{y_{1l}b_{l\quad m}^{(j)}}}}\quad,} & (15) \end{matrix}$

[0114] are known under the considered hypothesis about [x_(1k)]^(n) _(k=1) and [y_(1k)]^(n) _(k=1).

[0115] 3.Do the Following

[0116] (a) Recover [x_(i1)]_(i = 2)^(n)

[0117] and [y_(i1)]_(i = 2)^(n)

[0118] solving the corresponding system of the first 2n−2 linear equations under the given hypothesis.

[0119] (b) Employ the remained 2n equations for checking correctness of the hypothesis by checking consistence of these equations with the current hypothesis and the obtained solution, by evaluating (14) for j=2n−1, 2n, . . . , 4n−2; consequently perform the following actions:

[0120] i. if all the checks are positive accept the candidates as the true ones and memorize them as the first rows and columns of K₀ and K₀ ⁻¹.

[0121] ii. otherwise go to Step 1.

[0122] 4. For Each k=2, 3, . . . , n do the Following:

[0123] recover [x_(ik)]_(i = 2)^(n)

[0124] and [y_(ik)]_(i = 2)^(n)

[0125] solving the system of equations(14) when j=1, 2, . . . , 2n−2,using [x_(1k)]_(i = 1)^(n)

[0126] and [y_(1k)]_(i = 1)^(n)

[0127] recovered in Step3(b);

[0128] memorize the solution [x_(ik)]_(i = 1)^(n)

[0129] and [y_(ik)]_(i = 1)^(n)

[0130] as the kth columns of K₀ and K⁻¹ ₀;

[0131] if k=n go to Output.

[0132] Output

[0133] Recovered master secret key K₀.

[0134] (5) Consequences of the Effective Secret Key Size

[0135] In the previous section the effective size of FEA-M master secret key has been derived, and this section points out the security consequences of the derived result. The discussion is not limited only to the case when n=64 suggested in in “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001” because FEA-M can operate for any n and it is reasonable to assume that an interested party might employ FEA-M using a smaller value of the parameter n in order to use smaller secret key size which is equal to n².

[0136] Regarding the security of FEA-M, the above reference takes into account the following statement: For multimedia applications, information rate is very high, but the information value is very low, and so, breaking the encryption code is much more expensive than to buy the legal access.

[0137] Although the previous statement is a correct one for a large number of situations, it is still interesting and important to know as precise as possible the security margins of any enciphering scheme.

[0138] Scenario for deriving the effective master secret key size which assumes that in a number of the data streams the first n×n block consists of all zeros is at least a possible one and should be taken into account for the overall security evaluation.

[0139] Accordingly, Corollary 1 is numerically considered by the Table I shown in FIG. 2.

[0140] Table I is an illustration for the following statements:

[0141] (i) The nominal secret key size yields a misleading information regarding the security of FEA-M because real uncertainty of the master secret key is totally different in a scenario given by Assumption 1.

[0142] (ii) In the case proposed in the above mentioned reference, when the parameter n=64 FEA-M is not breakable by the approach given in Section (4) because it requires an exhaustive search over 2¹³⁴ hypothesis, but the uncertainty on master secret key is smaller than it is indicated by the master secret key length for a factor proportional to 2 ³⁹⁶². Accordingly, this implies a very inefficient use of the employed master secret key which is an undesirable property.

[0143] (iii) The NESSIE project disclosed in “New European Schemes for Signatures, Integrity and Encryption (NESSIE) Project”, for example, implies that a 256-bits secret key is a very large one, and on the other hand FEA-M with the same key size is a totally insecure encryption algorithm because in this case the effective secret key size is only 36 bits.

[0144] (iv) Moreover, FEA-M can be considered as an insecure enciphering technique if the employed master secret key is smaller than 1024 bits.

[0145] (6) Sensitivity on Packet Loss Errors

[0146] We focus on a probabilistic model of packet loss within the network. Accordingly, in this section we consider FEA-M scheme in a (q, 1)-network. In such a network, each packet can be lost independently at random with probability q. Note that “V. Paxson, “End-to-end Internet packet dynamics”, IEEE/ACM Transactions on Networking, vol. 7,pp. 277-292, 1999” presents an experimental study which includes consideration of the packets loss on the Internet. The current Internet does not provide any loss guarantee, and in particular the packet loss ratio could be very high.

[0147] Property 1.

[0148] Suppose that an r-blocks length message is encrypted by FEA-M. Than, if a block j, j<r, is the first lost block of the message ciphertext, only a part of the message consisting of the first j−1 blocks can be decrypted.

[0149] Proof.

[0150] Recall that decryption of the jth block and further blocks is given by the following:

P _(i) =K ⁻¹(C _(i) +P _(i−1))K ^(−i) +C _(i−1),

i=j, j+1, . . . , r.   (16)

[0151] Accordingly, it is directly evident that if the ciphetext block C_(j) is lost, no one block P_(i), i≧j can be decrypted.

[0152] Corollary 2.

[0153] When the number of message blocks r is grater than q⁻¹, expected number of completely decrypted messages is close to 0.

[0154] Previous statements show that FEA-M is not suitable for applications in a network where the packets can be lost because when a packet is lost, all the packets after that one can not be decrypted, and accordingly the corresponding part of the message can not be used.

[0155] (7) Boolean Matrix Based Encryption Algorithm

[0156] We assume that a message is divided into a series of blocks P₁, P₂, . . . , P_(r) with same length n². If the length of the last block is less than n², we need append some 0s in it so that it length is right n². The n² bits of each block are arranged as a square matrix of order n.

[0157] The encryption and decryption processes involve the session key K and the initial matrix V which are binary matrices of order n. Generation and distribution of these two matrices will be discussed later on, and in this moment we assume that they are known by the sender and receiver, and that they are unknown to any other third party.

[0158] In here proposed algorithm, each plaintext matrix P_(i) is encrypted into ciphertext C_(i), and each corresponding ciphertext matrix C_(i) is decrypted into plaintext P_(i) in the following way:

C _(i) =K(P _(i) +KVK ^(i))K ^(n+1) +KVK ^(i),   (18)

P _(i) =K ⁻¹(C _(i) +KVK ^(i))K ^(−(n+i)) +KVK ^(i).   (19)

[0159]FIG. 3 shows the encryption algorithm corresponding to the above equation (18). In the Step S201, data P_(i) is input and calculates K(P_(i)+KVK^(i))K^(n+1). In the Step S202, KVK^(i) is calculated, and in the step S203, K(P_(i)+KVK^(i)) K^(n+i)+KVK^(i) is calculated, which corresponds to the above equation (18).

[0160] Note that substitution of (18) into (19) yields, $\begin{matrix} \begin{matrix} {{\left. {P_{i} = {{K^{- 1}\left( {{{K\left( {P_{i} + {KVK}^{\quad i}} \right)}K^{n + i}} + {KVK}^{\quad i}} \right)} + {KVK}^{\quad i}}} \right)K^{- {({n + i})}}} + {KVK}^{\quad i}} \\ {= {{K^{- 1}{K\left( {P_{i} + {KVK}^{\quad i}} \right)}K^{n + i}K^{- {({n + i})}}} + {KVK}^{\quad i}}} \\ {= P_{i}} \end{matrix} & (20) \end{matrix}$

[0161] which confirms invertability of the proposed enciphering procedure.

[0162] In the proposed scheme we assume employment of the same key distribution as it is reported in “X, Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001”. Accordingly, we assume existence of a master secret key in form of an n×n binary matrix K₀ which has been distributed to the parties in a secure way.

[0163] Initially, the sender is required to generate session key in form of a binary matrix K. A method for the generation of the matrix K and its inverse K⁻¹ is given in the above mentioned reference. Besides the session key matrix, the sender is required to randomly generate an initial binary matrix V. Each element of V is randomly chosen from GF (2) so that the distribution of 0 and 1 in V obeys the uniform distribution. By using the master key matrix K₀, the inverse of the session key matrix K and the initial matrix V can be distributed from the sender to the receiver in the following way.

[0164] The sender side computes the following

K*=K ₀ K ⁻¹ K ₀   (21)

V*=K ₀ VK ₀   (22)

[0165] and sends (K*, V*) to the receiver.

[0166] The receiver side recovers K⁻¹ and V by computing

K ⁻¹ =K ₀ ⁻¹ K*K ₀ ⁻¹,   (23)

V=K ₀ ⁻¹ V*K ₀ ⁻¹.   (24)

[0167]FIG. 4 shows a data communication system comprising a server device 110 and a client device 120. The server device 110 sends data encrypted by the above explained encryption algorithm, and the client device 120 received the date and decrypts the received data utilizing the above explained decryption algorithm.

[0168] The data is transmitted through public communication channel (e.g. internet) 150.

[0169] The server device 110 comprises a data enciphering means 112 which executes a process of dividing a data message 111 into a series of blocks P₁, P₂, . . . , P_(n), and executes a process of generating a series of encrypted data message blocks C₁, C₂, . . . , C_(n) by computing the above explained equation,

C _(i) =K(P _(i) +KVK ^(i))K ^(n+1) +KVK ^(i).

[0170] In this encryption process, Secret key K 113 is used. Secret key K 113 is a session key in form of an n×n binary matrix which can be generated from a master secret key in form of an n×n binary matrix K₀.

[0171] The client device 120 receives encrypted data 121. The client device 120 comprises a data deciphering means 122 which executes a process of generating a series of plain data message blocks P₁, P₂, . . . , P_(n) 124 by computing the above explained equation,

P _(i) =K ⁻¹(C _(i) +KVK ^(i))K ^(−(n+i)) +KVK ^(i).

[0172] In this decryption process, Secret key K 123 is used. Secret key K 123 is a session key in form of an n×n binary matrix which can be generated from a master secret key in form of an n×n binary matrix K₀.

[0173] (8) Main Characteristics of the Proposed Encryption Algorithm

[0174] Property 1.

[0175] According to the best present knowledge, there is no one indication to contradict the claim that the effective secret key size of the proposed cipher algorithm is equal to the nominal one.

[0176] In continuation, we consider the proposed scheme in a(q,1)-network where each packet can be lost independently at random with probability q. Note that “V. Paxson, “End-to-end Internet packet dynamics”, IEEE/ACM Transactions on Networking, vol. 7,pp. 277-292, 1999” presents an experimental study which includes consideration of the packets loss on the Internet. The current Internet does not provide any loss guarantee, and in particular the packet loss ratio could be very high.

[0177] Property 2.

[0178] Suppose that an r-blocks length message is encrypted by the proposed algorithm. Then, if a block j, j≧r, is a lost block of the ciphertext, as the consequence only block j of the message will be lost without any further impact on the remained message blocks.

[0179] Finally, regarding the implementation issues, note the following:

[0180] For each i, i=1, 2, . . . , r, K^(n+1) and KVK^(i) can be calculated employing the following recursive approach,

K ^(n+i)=(K ^(n+i−1))K, KVK ^(i)=(KVK ^(i−1))K.

[0181] Assuming that an implementation allows computation of the term KVK^(i) in parallel with the other computations (which is a reasonable assumption), the time complexity of the proposed algorithm is approximately the same as the implementation time complexity of FEA-M.

[0182] (9) Conclusion

[0183] Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiment, as well as alternative embodiments of the invention, will become apparent to persons skilled in the art upon reference to the description of the invention. It is therefore contemplated that such modifications can be made without departing from the spirit or scope of the present invention as defined in the appended claims.

[0184] According to the present invention, a Boolean matrices based encryption and decryption method can be provided, which is resistant against recently developed secret key recovering procedure.

[0185] Further, according to the present invention, a Boolean matrices based encryption and decryption can be executed without burst data losses even if some packet loss happens in a data network, because the encryption and decryption process can be executed without influences of many data blocks.

BRIEF DESCRIPTION OF DRAWINGS

[0186]FIG. 1 Flow-chart of FEA-M encryption algorithm.

[0187]FIG. 2 Table of nominal and effective master secret key size.

[0188]FIG. 3 Flow-chart of the improved FEA-M encryption algorithm.

[0189]FIG. 4 Block diagram of the data communication system which utilizes the improved FEA-M encryption algorithm. 

1. A method of encrypting a data message, comprising the steps of: (a) dividing a data message into a series of blocks P₁, P₂, . . . , P_(n), wherein block number is n; (b) generating a series of encrypted data message blocks C₁, C₂, . . . , C_(n); by computing the following equation, C _(i) =K(P _(i) +KVK ^(i))K ^(n+1) +KVK ^(i) K: Session key in form of an n×n binary matrix V: initial n×n binary matrix.
 2. The method according to claim 1, said session key K is generated from a master secret key in form of an n×n binary matrix K₀.
 3. The method according to claim 2, said method further comprising the steps of: generating a value K* by computing the following equation, K*=K ₀ K ⁻¹ K ₀ K⁻¹: inverse of K.
 4. The method according to claim 2, said method further comprising the steps of: generating a value V* by computing the following equation, V*=K₀VK₀.
 5. A method of decrypting an encrypted data message, comprising the steps of: (a) generating a series of plain data message blocks P₁, P₂, . . . , P_(n); by computing the following equation, P _(i) =K ⁻¹(C _(i) +KVK ^(i))K ^(−(n+1)) +KVK ^(i). K: Session key in form of an n×n binary matrix V: initial n×n binary matrix K⁻¹: inverse of K.
 6. The method according to claim 5, said session key K is generated from a master secret key in form of an n×n binary matrix K₀.
 7. The method according to claim 6, said method further comprising the steps of: +P2 generating a value K⁻¹ from K* by computing the following equation, K ⁻¹ =K ₀ ⁻¹ K*K ₀ ⁻¹.
 8. The method according to claim 6, said method further comprising the steps of: generating a value V from V* by computing the following equation, V=K ₀ ⁻¹ V*K ₀ ⁻¹.
 9. A data communication-system comprising a server device and a client device wherein: said server device comprises a data enciphering means which executes a process of dividing a data message into a series of blocks P₁, P₂, . . . , P_(n), wherein block number is n; and a process of generating a series of encrypted data message blocks C₁, C₂, . . . , C_(n); by computing the following equation, C _(i) =K(P _(i) +KVK ^(i))K ^(n+i) +KVK ^(i) K: Session key in form of an n×n binary matrix V: initial n×n binary matrix; Said client device comprises a data deciphering means which executes a process of generating a series of plain data message blocks P₁, P₂, . . . , P_(n); by computing the following equation, P _(i) =K ⁻¹(C _(i) +KVK ^(i))K ^(−(n+i)) +KVK ^(i). K: Session key in form of an n×n binary matrix V: initial n×n binary matrix K⁻¹: inverse of K.
 10. The data communication system according to claim 9, said session key K is generated from a master secret key in form of an n×n binary matrix K₀.
 11. The data communication system according to claim 10, said data enciphering means further executes a process of generating a value K* by computing the following equation, K*=K ₀ K ⁻¹ K ₀ K⁻¹: inverse of K.
 12. The data communication system according to claim 10, said data enciphering means further executes a process of generating a value V* by computing the following equation, V*=K₀VK₀.
 13. The data communication system according to claim 10, said data deciphering means further executes a process of generating a value K⁻¹ from K* received from the server device, by computing the following equation. K ⁻¹ =K ₀ ⁻¹ K*K ₀ ⁻¹
 14. The data communication system according to claim 10, said data deciphering means further executes a process of generating a value V from V* received from the server device, by computing the following equation, V=K ₀ ⁻¹ V*K ₀ ⁻¹. 